<?php 
class ArticleModel extends  Model{
	
	public $table='article';
	/**
	 * 
	 * 自动完成
	 */
	public $auto=array(
	     array('sendtime','time','function',2,1),
	     array('attr','_attr','method',2,3),
	     array('user_uid','_uid','method',2,1)
	);
	
	public function _uid(){
		return session('aid');
	}
	
	/**
	 * 属性
	 */
	 public function _attr($value){
	 	//如果用户选择了属性的时候
	 	if($value){
	 		//return之后就会存入数据库 转化成字符串
	 		return implode(',',$value);
	 	}
	 }
	
	
	/**
	 * 自动验证
	 */
	public $validate=array(
           array('title','nonull','标题不能为空',2,3),
           array('author','maxlen:15','作者名称不能超过15个字符',2,3),
           array('category_cid','nonull','必须选择分类',2,3)	  
	);
	/**
	 * 添加
	 */
	 public function addData(){
	 	//create方法可以触发自动验证和自动完成
	 	//先验证在添加
	 	if(!$this->create()) return false;
		$arcModel=K('ArticleData');
		//执行文章数据表的验证
		if(!$arcModel->create()){
			//把文章数据模型的里面的错误，压入到当前模型的错误，
			//因为控制器调用的就是当前模型的错误
			$this->error=$arcModel->error;
			return false;
		}
		//第一张表的article表的添加**********
		//当前添加好的文章的aid  add方法返回一个自增id
		$aid=$this->add();
		//第二张表article_tag表的添加*******
		//添加文章标签中间表
		K('ArticleTag')->addData($aid);
		//第三张表article_data表的添加*******
		$arcModel->addData($aid);
		p($this->data);die;
		return true;
	 }	
	 
	 /**
	  * 编辑文章表
	  */
	  public function editData(){
	  	//验证article表
	  	if(!$this->create()) return false;
		$arcModel=K('ArticleData');
		//执行文章数据表的验证
		if(!$arcModel->create()){
			//把文章数据模型的里面的错误，压入到当前模型的错误，
			//因为控制器调用的就是当前模型的错误
			$this->error=$arcModel->error;
			return false;
		}
		
		
		//修改article
		$this->update();
		//修改articleData表
		$aid=Q('post.aid',0,'intval');
		$arcModel->editData($aid);
		//修改article_tag中间表
		$arcTagModel=K('ArticleTag');
		//先删除
		$arcTagModel->where("article_aid={$aid}")->delete();
	  	//在添加
	  	$arcTagModel->addData($aid);
		return true;
	  }
	  
	  
	  
	  
	  
}




 ?>
